As computing technology has evolved and become more ingrained in modern life, the amount of data that is generated and correspondingly later retrieved for analysis and other reasons is of a scope that can quickly defy human comprehension. The Library of Congress, for instance, has been estimated to hold fifteen terabytes of data, which a small number of off-the-shelf readily available hard disk drives can easily store. Yet, enterprise systems, if not already commonplace, are now being constructed that contemplate the storage of petabytes of data. A single petabyte is equal to 1,024 terabytes, or more than six-eighty times the amount of information that the Library of Congress stores.
In such enterprise systems, typical access patterns are that updates are more common for new data, but as the data ages over time, the data is less likely to be updated. By comparison, read accesses may occur with about the same relative frequency for both new data (e.g., to understand what has happened recently) and for older data (e.g., for historical analysis purposes). Retrieval of data may exponentially slow as the amount of stored data increases. Furthermore, coordination issues become more difficult to manage with increasing amounts of data and increasing numbers of processing nodes that can access the data.